package com.efast.dmom.equipment.dao.checking;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.efast.dmom.equipment.bean.EquipCheckingProgramStandard;
import com.efast.dmom.equipment.bean.checkplan.EquipCheckingTaskEquipBean;
import com.efast.dmom.equipment.entity.EquipCheckingPlan;
import com.efast.dmom.equipment.entity.EquipCheckingTask;
import com.efast.dmom.equipment.entity.EquipCheckingTaskEquip;
import com.efast.dmom.equipment.entity.EquipCheckingTaskProgram;
import com.efast.dmom.equipment.entity.EquipCheckingTaskProgramItem;

public interface EquipCheckingTaskDao {
	
	/**
	 * 新增设备点检计划
	 * */
	public Integer addEquipCheckPlan(EquipCheckingPlan bean);
	
	/**
	 * 删除设备点检计划
	 * */
	public void deleteEquipCheckPlan(Integer id);
	 
	/**
	 * 更新设备点检计划
	 * */
	public void updateEquipCheckPlan(EquipCheckingPlan bean);
	
	
	/**
	 * 批量新增设备点检任务
	 * */
	public void addEquipCheckTask(List<EquipCheckingTask> list);
	
	/**
	 * 批量删除设备点检任务
	 * */
	public void deleteEquipCheckTask(List<Integer> ids);
	
	/**
	 * 批量更新设备点检任务
	 * */
	public void updateEquipCheckTask(List<EquipCheckingTask> list);
	
	/**
	 * 批量新增设备点检任务项目
	 * */
	public void addEquipCheckingTaskProgram(List<EquipCheckingTaskProgram> list);
	
	/**
	 * 批量删除设备点检任务项目
	 * */
	public void deleteEquipCheckingTaskProgram(List<EquipCheckingTaskEquipBean> list);
	
	/**
	 * 批量更新设备点检任务项目
	 * */
	public void updateEquipCheckingTaskProgram(List<EquipCheckingTaskProgram> list);


	/**
	 * 批量新增设备点检任务设备
	 * */
	public void addEquipCheckingTaskEquip(List<EquipCheckingTaskEquipBean> list);

	/**
	 * 批量删除设备点检任务设备
	 * */
	public void deleteEquipCheckingTaskEquip(Integer planId);

	/**
	 * 批量更新设备点检任务设备
	 * */
	public void updateEquipCheckingTaskEquip(List<EquipCheckingTaskEquip> list);
	
	
	/**
	 * 批量新增设备点检任务项目详情
	 * */
	public void addEquipCheckingTaskProgramItem(List<EquipCheckingTaskProgramItem> list);
	
	/**
	 * 批量更新设备点检任务项目详情
	 * */
	public void updateEquipCheckingTaskProgramItem(List<EquipCheckingTaskProgramItem> list);
	
	/**
	 * 批量删除设备点检任务项目详情
	 * */
	public void deleteEquipCheckingTaskProgramItem(List<Integer> ids);
	
	/**
	 *	查询设备点检设备项目通过设备点检计划id
	 * */
	public List<EquipCheckingTaskEquipBean> selectCheckTaskProgramByIds(Integer id);

	public List<Integer> queryPlanNameUnique(@Param(value = "planName") String planName, @Param(value = "planStartTime")String planStartTime, @Param(value = "planEndTime")String planEndTime);

	public List<EquipCheckingProgramStandard> queryEquipCheckingProgramStandard(List<EquipCheckingTaskProgram> list);
	
	public List<EquipCheckingTaskProgramItem> getCheckingProgramDetails(Integer programId);
	
	public void saveGenerateFormId(@Param(value = "generateFormId")String generateFormId, @Param(value = "taskProgramId")Integer taskProgramId);
}
